package main

import "fmt"

/*
在声明一个变量而不指定其类型时（即使用不带类型的 := 语法或 var = 表达式语法），变量的类型由右值推导得出。

当右值声明了类型时，新变量的类型与其相同：

var i int
j := i // j 也是一个 int
不过当右边包含未指明类型的数值常量时，新变量的类型就可能是 int, float64 或 complex128 了，这取决于常量的精度：

i := 42           // int
f := 3.142        // float64
g := 0.867 + 0.5i // complex128
尝试修改示例代码中 v 的初始值，并观察它是如何影响类型的。
*/
func main() {
	a := 1
	b := 3.14
	c := 3 + 5i
	fmt.Printf("Type of a is %T\n", a)
	fmt.Printf("Type of b is %T\n", b)
	fmt.Printf("Type of c is %T\n", c)
}
